package com.emp.model;

import java.io.File;
import java.sql.Date;
import java.util.List;
import java.util.Map;

public class EmpService {

	private EmpInterface dao;

	public EmpService() {
		dao = new EmpHibernateDAO();
	}

	public void addEmp(String emp_account, String emp_password, String emp_name, Integer emp_gender, Date emp_birthday, String emp_email, String emp_address, String emp_phone, String emp_mobile, Date emp_hiredate, String emp_job) {

		EmpVO empVO = new EmpVO();
		empVO.setEmp_account(emp_account);
		empVO.setEmp_password(emp_password);
		empVO.setEmp_name(emp_name);
		empVO.setEmp_gender(emp_gender);
		empVO.setEmp_birthday(emp_birthday);
		empVO.setEmp_email(emp_email);
		empVO.setEmp_address(emp_address);
		empVO.setEmp_phone(emp_phone);
		empVO.setEmp_mobile(emp_mobile);
		empVO.setEmp_hiredate(emp_hiredate);
		empVO.setEmp_job(emp_job);
		empVO.setEmp_photo_name(null);
		empVO.setEmp_photo_format(null);
		empVO.setEmp_photo(null);
		dao.insert(empVO);

//		return empVO;
		return;
	}

	public EmpVO updateEmp(Integer emp_no, String emp_account, String emp_password, String emp_name, Integer emp_gender, Date emp_birthday, String emp_email, String emp_address, String emp_phone, String emp_mobile, Date emp_hiredate, String emp_job) {

		EmpVO empVO = new EmpVO();
		empVO.setEmp_no(emp_no);
		empVO.setEmp_account(emp_account);
		empVO.setEmp_password(emp_password);
		empVO.setEmp_name(emp_name);
		empVO.setEmp_gender(emp_gender);
		empVO.setEmp_birthday(emp_birthday);
		empVO.setEmp_email(emp_email);
		empVO.setEmp_address(emp_address);
		empVO.setEmp_phone(emp_phone);
		empVO.setEmp_mobile(emp_mobile);
		empVO.setEmp_hiredate(emp_hiredate);
		empVO.setEmp_job(emp_job);
		empVO.setEmp_photo_name(null);
		empVO.setEmp_photo_format(null);
		empVO.setEmp_photo(null);
		dao.update(empVO);

		return empVO;
	}

	public void deleteEmp(Integer emp_no) {
		dao.delete(emp_no);
	}

	public EmpVO getOneEmp(Integer emp_no) {
		return dao.findByPrimaryKey(emp_no);
	}
	
	public EmpVO getAccountEmp(String emp_account) {
		return dao.findByAccountKey(emp_account);
	}
	
	public EmpVO getMobileEmp(String emp_mobile) {
		return dao.findByMobileKey(emp_mobile);
	}

	public List<EmpVO> getAll() {
		return dao.getAll();
	}
	
	public void insertBLOB(String emp_account, String emp_password, String emp_name, Integer emp_gender, Date emp_birthday, String emp_email, String emp_address, String emp_phone, String emp_mobile, Date emp_hiredate, String emp_job, File pic) {
		dao.insertBLOB(emp_account, emp_password, emp_name, emp_gender, emp_birthday, emp_email, emp_address, emp_phone, emp_mobile, emp_hiredate, emp_job, pic);
		return;
	}
	
	public void updateBLOB(Integer emp_no, String emp_account, String emp_password, String emp_name, Integer emp_gender, Date emp_birthday, String emp_email, String emp_address, String emp_phone, String emp_mobile, Date emp_hiredate, String emp_job, File pic) {
		dao.updateBLOB(emp_no, emp_account, emp_password, emp_name, emp_gender, emp_birthday, emp_email, emp_address, emp_phone, emp_mobile, emp_hiredate, emp_job, pic);
		return;
	}
	
	public List<EmpVO> getAll(Map<String, String[]> map) {
		return dao.getAll(map);
	}
	
}